Data processing can be done in a variety of ways by a variety of data processing entities. For example, computers, via a central processing unit and associated co-processors, process data to execute applications. Applications may include word processing applications, drawing applications, presentation applications, spreadsheet applications, video applications, video game applications, etc. As another example of data processing, televisions process data to render received modulated signals into video images. As such, signals provided by DVD players, VCRs, camcorders, etc. can all be processed by a television to produce the video images. As yet another example of data processing, a computer may include a television decoder to perform similar data processing functions as a television.
As the amount of data being processed increases, the processing speed and memory capacity of the processing device needs to increase accordingly. As an alternate to, or in addition to, increasing the processing speed and memory, the data may be compressed, such that the data is represented by a smaller amount of compressed data. By compressing data, processing entities may effectively process more data in a given time. In addition, storage of compressed data takes considerably less memory than uncompressed data. For example, video data that has been encoded in accordance with the motion picture expert group ("MPEG") standard can be stored on a smaller storage medium than uncompressed video. The MPEG standard requires that video data be compressed based on motion compression, which utilizes time related frames of video to compress a particular frame of video. For example, a current frame may be encoded based on a previous frame and a subsequent frame. In addition, motion compensation encodes frames based on the differences between the relational frames. As such, one frame needs to be encoded based on the MPEG encoding convention, and then other frames relating to that frame are encoded based on the differences from that frame.
Decoding of MPEG encoded video data frames requires four memory locations, one for each related frame. The four full-frame memory buffers store two referenced images, the current image being rendered, and the decoded video data being presented to a display driver. For a display of 720.times.480 pixels, the four buffers consume approximately 2 megabits of memory. As the display resolution increases, for example to 1920 to 1080, the four full-frame buffers would require approximately 8 megabits of storage capacity. When memory requirements are increased by a factor of 2 or more, the overall die size of an integrated video graphics circuit increases substantially, which correspondingly increases the cost of integrated video graphics circuits.
Therefore, a need exists for a method and apparatus that reduces the memory requirements for encoding and/or decoding of data blocks, and in particular for data blocks containing video information.